function initWeather() {
    const cityInput = document.getElementById('weather-city');
    const searchBtn = document.getElementById('weather-search');
    const resultDiv = document.getElementById('weather-result');

    searchBtn.onclick = () => getWeather(cityInput, resultDiv);
    cityInput.onkeydown = e => {
        if (e.key === 'Enter') getWeather(cityInput, resultDiv);
    };

    autoLocateWeather(cityInput, resultDiv);
}

function cleanupWeather() {
    const cityInput = document.getElementById('weather-city');
    const searchBtn = document.getElementById('weather-search');
    cityInput.onkeydown = null;
    searchBtn.onclick = null;
}

// ... getWeather / autoLocateWeather 保持不变
// 天气初始化函数（切换到天气模块时执行）
// 自动定位（基于高德IP定位API，无需用户授权）
function autoLocateWeather(cityInput, resultDiv) {
    // 🔹 替换为你的「高德Web服务Key」（不是JS API Key）
    const amapKey = 'dcb0d8aa43ed54b75740cb95ee7a254f';
    if (!amapKey) {
        console.error('请先在 weather.js 中填写高德Web服务Key');
        return;
    }

    // 调用高德IP定位API，获取当前城市
    fetch(`https://restapi.amap.com/v3/ip?key=${amapKey}`)
        .then(res => {
            // 先判断请求是否成功（比如403、500错误）
            if (!res.ok) throw new Error(`定位请求失败：${res.status}`);
            return res.json();
        })
        .then(data => {
            // 高德API返回 status=1 表示请求成功
            if (data.status === '1') {
                const city = data.city;
                // 排除「未知城市」的情况（部分IP可能解析不到）
                if (city && city !== '未知城市') {
                    cityInput.value = city; // 自动填充到输入框
                    getWeather(cityInput, resultDiv); // 自动查询天气
                } else {
                    console.log('未解析到当前城市，请手动输入');
                }
            } else {
                // 定位失败时，显示具体原因（比如Key无效）
                console.error('定位失败：', data.info || '未知错误');
            }
        })
        .catch(err => {
            console.error('定位出错：', err);
            // 网络错误时不弹窗，避免打扰用户
        });
}

// 核心：获取天气数据并渲染结果
async function getWeather(cityInput, resultDiv) {
    const city = cityInput.value.trim();
    // 先判断用户是否输入城市
    if (!city) {
        alert('请输入城市名（如：北京、上海）');
        return;
    }

    // 🔹 替换为你的「高德Web服务Key」（和上面一致）
    const amapKey = 'dcb0d8aa43ed54b75740cb95ee7a254f';
    if (!amapKey) {
        alert('请先在 weather.js 中配置高德Web服务Key');
        return;
    }

    try {
        // 调用高德天气API（获取实时天气）
        const weatherUrl = `https://restapi.amap.com/v3/weather/weatherInfo?city=${encodeURIComponent(city)}&extensions=base&key=${amapKey}`;
        const res = await fetch(weatherUrl);
        const data = await res.json();

        // 1. 重置结果区域（清除旧结果+隐藏动画）
        resultDiv.innerHTML = '';
        resultDiv.classList.remove('show');

        // 2. 判断天气API是否返回成功
        if (data.status === '1' && data.lives.length > 0) {
            const weatherData = data.lives[0]; // 实时天气数据

            // 天气图标映射表（用Icons8的图标，加载快且清晰）
            const weatherIcons = {
                '晴': 'https://img.icons8.com/color/96/000000/sun.png',
                '多云': 'https://img.icons8.com/color/96/000000/cloud.png',
                '阴': 'https://img.icons8.com/color/96/000000/clouds.png',
                '雨': 'https://img.icons8.com/color/96/000000/rain.png',
                '阵雨': 'https://img.icons8.com/color/96/000000/rain.png',
                '雷阵雨': 'https://img.icons8.com/color/96/000000/thunderstorm.png',
                '雪': 'https://img.icons8.com/color/96/000000/snow.png',
                '雾': 'https://img.icons8.com/color/96/000000/fog.png',
                '霾': 'https://img.icons8.com/color/96/000000/haze.png'
            };

            // 匹配天气图标（处理「小雨」「中雪」等包含关键字的情况）
            let iconUrl = weatherIcons[weatherData.weather];
            if (!iconUrl) {
                if (weatherData.weather.includes('雨')) iconUrl = weatherIcons['雨'];
                else if (weatherData.weather.includes('雪')) iconUrl = weatherIcons['雪'];
                else if (weatherData.weather.includes('云') || weatherData.weather.includes('阴')) iconUrl = weatherIcons['多云'];
                else iconUrl = weatherIcons['晴']; // 默认显示晴天图标
            }

            // 3. 渲染天气结果（带动画效果）
            resultDiv.innerHTML = `
                <img src="${iconUrl}" class="weather-icon" alt="${weatherData.weather}">
                <h3>${weatherData.city} 实时天气</h3>
                <div class="weather-detail">
                    <p>天气状况：${weatherData.weather}</p>
                    <p>当前温度：${weatherData.temperature}°C</p>
                    <p>空气湿度：${weatherData.humidity}%</p>
                    <p>风向风力：${weatherData.winddirection} ${weatherData.windpower}级</p>
                    <p>更新时间：${weatherData.reporttime}</p>
                </div>
            `;

            // 4. 触发显示动画（延迟50ms确保DOM已更新）
            setTimeout(() => {
                resultDiv.classList.add('show');
            }, 50);

        } else {
            // 城市未找到（比如输入错误的城市名）
            resultDiv.innerHTML = `<p class="weather-error">未找到「${city}」的天气数据，请检查城市名是否正确</p>`;
            resultDiv.classList.add('show');
        }

    } catch (err) {
        // 网络错误或API调用失败
        resultDiv.innerHTML = `<p class="weather-error">天气查询失败，请检查网络或Key配置</p>`;
        resultDiv.classList.add('show');
        console.error('天气查询出错：', err);
    }
}